Computer telephony (CT) systems manage the flow of electronic messages. Such messages include voice, data, and facsimile information, as well as video and other multi-media information. Computer telephony systems receive messages via the public telephone network or a private enterprise network, and may make use of POTS, IP, and wireless telephony technology. Computer telephony systems provide an array of telephony services.
To deliver services that can handle fax, voice, and data messaging, and video and other multi-media messages, computer telephony systems use multiple hardware platforms along with threaded proprietary software drivers and application program interfaces (APIs) that exploit the functions of the platforms. Development of applications sometimes does not keep pace with evolving market requirements and new hardware capabilities. Application development may require management of incompatibilities among platforms and development tools, and reliance on multiple vendors.
Due to the lag in application development, required capabilities may not be available when the user desires them. New hardware advances may be deployed without regard to the extensibility of existing firmware. Instead, firmware may be bound to specific hardware. Consequently, existing messaging systems and applications may be rendered obsolete by new hardware platforms. The time and cost of application and firmware redevelopment can undermine the price and performance gains of the new hardware.